<template>
  <div class="">
    <upload-excel :on-success="success" />
  </div>
</template>

<script>
import { addBatchEmployee } from '@/api/employees'
export default {
  name: '',
  components: {},
  props: {},
  data() {
    return {}
  },
  computed: {},
  watch: {},
  created() {},
  mounted() {},
  methods: {
    async success({ header, results }) {
      // header, results 这俩中的内容都是中文 和接口数据要求相悖,这里要做处理
      /**
      header = ["手机号", "姓名", "入职日期", "转正日期", "工号"]
      results = [
        {入职日期: 43535,姓名: "高大山",工号: 20089,手机号: 13041139879,转正日期: 43719}
        ...
      ]
      目标
      arr = [{timeOfEntry: 43535,username: "高大山"....}]
       */
      // 对应关系
      // console.log(header, results)
      const userRelations = {
        '入职日期': 'timeOfEntry',
        '手机号': 'mobile',
        '姓名': 'username',
        '转正日期': 'correctionTime',
        '工号': 'workNumber'
      }
      /*
      const arr = []
      // 方式1.通过2次循环
      //  第1次循环数组results
      //  第2次循环对象t
      results.forEach(t => {
        // userInfo = {timeOfEntry: 43535,username: "高大山"}
        const userInfo = {}
        for (var key in t) {
          // key = 入职日期/姓名....
          // newKey = timeOfEntry/username
          const newKey = userRelations[key]
          // value = 43535/高大山
          const value = t[key]
          userInfo[newKey] = value
        }
        arr.push(userInfo)
      })
      console.log(arr)
      */

      // 方式2.通过2次循环
      //  第1次循环数组results
      //  第2次循环数组Object.keys(t)
      // results.forEach(t => {
      //   const userInfo = {}
      //   // ['入职日期','姓名']
      //   Object.keys(t).forEach(key => {
      //     // 去掉中间变量
      //     // const newKey = userRelations[key]
      //     // const value = t[key]
      //     // userInfo[newKey] = value
      //     userInfo[userRelations[key]] = t[key]
      //   })
      //   arr.push(userInfo)
      // })

      // 方式3 使用map方法
      const arr = results.map(t => {
        const userInfo = {}
        Object.keys(t).forEach(key => {
          // 方式1
          if (['timeOfEntry', 'correctionTime'].includes(userRelations[key])) {
            t[key] = new Date(this.formatDate(t[key], '/'))
          }
          // 方式2
          // if (userRelations[key] === 'timeOfEntry' || userRelations[key] === 'correctionTime') {
          //   userInfo[userRelations[key]] = new Date(this.formatDate(t[key], '/')) // 只有这样, 才能入库
          //   return
          // }
          userInfo[userRelations[key]] = t[key]
        })
        return userInfo
      })
      await addBatchEmployee(arr)
      this.$message.success('批量添加成功')
      this.$router.back()
    },
    // 用于格式化时间
    formatDate(numb, format) {
      const time = new Date((numb - 1) * 24 * 3600000 + 1)
      time.setYear(time.getFullYear() - 70)
      const year = time.getFullYear() + ''
      const month = time.getMonth() + 1 + ''
      const date = time.getDate() - 1 + ''
      if (format && format.length === 1) {
        return year + format + month + format + date
      }
      return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date)
    }

  }
}
</script>

<style lang="scss" scoped>

</style>
